//双重循环
// for (外层初始化变量; 外层条件表达式; 外层操作表达式) {
//     console.log('外层循环体');
//     for (内层初始化变量; 内层条件表达式; 内层操作表达式) {
//         console.log('内层循环体');
//     }
// }
//i  j k
//里层循环可以看作是外层循环的循环体，外层循环执行一次，里层循环全部执行，里面的循环执行完以后再回到外层循环
// for (let i = 1; i <= 3; i++) {
//     console.log('这是外层循环的第' + i + '次');
//     for (let j = 1; j <= 5; j++) {
//         console.log('这是里层循环的第' + j + '次');
//     }
// }

//例：打印五行五列的⭐️
//外层控制行，内层控制列
// let str = '';
// for (let i = 0; i < 5; i++) {//外层控制有五行
//     for (let j = 0; j < 5; j++) {//内层控制一行有5个
//         str += '⭐️';
//     }
//     str += '\n';//一行拼接完以后需要换行
// }

// console.log(str);

// 练习：
// 1.打印九九乘法表
// let str = '';
// for (let i = 1; i <= 9; i++) {
//     for (let j = 1; j <= i; j++) {
//         str += `${j}*${i}=${i * j} `
//     }
//     str += '\n';
// }
// console.log(str);

// 2.打印2～100内的所有质数

// for (let i = 2; i <= 100; i++) {
//     let count = 0;
//     for (let j = 1; j <= i; j++) {
//         if (i % j == 0) {
//             count++;
//         }
//     }
//     if (count == 2) {
//         console.log(`${i}是质数`);
//     }
// }

//3.打星星1
// let str1 = '';
// for (let i = 1; i <= 6; i++) {
//     for (let j = 1; j <= i; j++) {
//         str1 += '*';
//     }
//     str1 += '\n';
// }
// console.log(str1);

// 4.打星星2

//  行号  星星数  空格
//   1     6     0
//   2     5     1
//   3     4     2
//   4     3     3
//   5     2     4
//   6     1     5

// let str2 = '';
// for (let i = 1; i <= 6; i++) {
//     //打空格
//     for (let j = 1; j <= i - 1; j++) {
//         str2 += ' '
//     }
//     //打星星
//     for (let j = 1; j <= 7 - i; j++) {
//         str2 += '*';
//     }
//     str2 += '\n'
// }
// console.log(str2);

// 5.打星星3
//  行号  星星数  空格
//   1     1     5
//   2     2     4
//   3     3     3
//   4     4     2
//   5     5     1
//   6     6     0
// let str3 = '';
// for (let i = 1; i <= 6; i++) {
//     for (let j = 1; j <= 6 - i; j++) {
//         str3 += ' '
//     }
//     for (let j = 1; j <= i; j++) {
//         str3 += '*';
//     }
//     str3 += '\n';
// }
// console.log(str3);


// 6.打星星4
//  行号  星星数  空格
//   1     1     5
//   2     3     4
//   3     5     3
//   4     7     2
//   5     9     1
//   6     11    0

// let str4 = '';
// for (let i = 1; i <=6; i++) {
//     for (let j = 0; j <= 6 - i; j++) {
//         str4 += ' ';
//     }
//     for (let j = 1; j <= 2 * i - 1; j++) {
//         str4 += '*';
//     }
// for (let j = i; j < 5; j++) {
//     str4 += ' ';
// }
// for (let j = 0; j <= i; j++) {
//     str4 += '*';
// }
// for (let j = 1; j <= i; j++) {
//     str4 += '*';
// }
//     str4 += '\n';
// }
// console.log(str4);

// 空心菱形？ 平行四边形？ 用户自定义几行几列？ 用户自定义高的等腰三角形？

//---- 多重循环
//0 0 012 1 012 2 012 1
// for (let i = 0; i < 3; i++) {
//     console.log('i:' + i);
//     for (let j = 0; j < 3; j++) {
//         console.log('j:' + j);
//         for (let k = 0; k < 3; k++) {
//             console.log('k:' + k);
//         }
//     }
// }

//---- 打断循环
//0 01 101 
// for (let i = 0; i < 3; i++) {
//     console.log('i:' + i);
//     for (let j = 0; j < 3; j++) {
//         console.log('j:' + j);
//         if (j == 1) {
//             break;
//         }
//     }
// }

//0 012 1 012
// for (let i = 0; i < 3; i++) {
//     console.log('i:' + i);
//     for (let j = 0; j < 3; j++) {
//         if (j == 1) {
//             continue;
//         }
//         console.log('j:' + j);
//     }
// }

//0 01234 1 0 2 01234
// for (let i = 0; i < 3; i++) {
//     console.log(i);
//     for (let j = 0; j < 5; j++) {
//         console.log(j);
//         if (i == 1) {
//             break;
//         }
//     }
// }
//0 01234 1 2 01234
// for (let i = 0; i < 3; i++) {
//     console.log(i);
//     for (let j = 0; j < 5; j++) {
//         if (i == 1) {
//             continue;
//         }
//         console.log(j);
//     }
// }